package bairui.international.model.domain.jpa;

import com.lianjing.sh.model.uml.model.data.TBSuper_BaseID;

/**
 *
 * (状态审核记录)TBSuper_StateVerifyRecord
 *
 * @see Help_TBSuper_StateVerifyRecord#inheritance() 继承体系信息
 *
 */
@javax.persistence.MappedSuperclass
@com.lianjing.sh.model.common.annotation.Comment("状态审核记录")
public class TBSuper_StateVerifyRecord
 extends TBSuper_BaseID

{

	
	
	/**
	 * 必须属性赋值接口
	 */
	public static interface MustProperties{
		/** 类型 */
		public bairui.international.model.type.Type_StateRecord getType();
		/** 说明 */
		public String getCommentate();
	}
	
	/**
	 * 为必须属性赋值
	 */
	public TBSuper_StateVerifyRecord properties(MustProperties properties) {
		this.setType(properties.getType());
		this.setCommentate(properties.getCommentate());
		return this;
	}
	
	/**
	 *	必须属性构造函数
	 */
	public TBSuper_StateVerifyRecord(MustProperties properties) {
		this.properties(properties);
	}
	
	
	/**
	 * 可选单属性赋值接口
	 */
	public static interface OptionalSingleProperties{
		/** 消息 */
		public String getMessage();
	}
	
	/**
	 * 为可选单属性赋值
	 */
	public TBSuper_StateVerifyRecord properties(OptionalSingleProperties properties) {
		this.setMessage(properties.getMessage());
		return this;
	}
	
	
	
	public TBSuper_StateVerifyRecord(MustProperties must, OptionalSingleProperties optionalSingle) {
		this.properties(must);
		this.properties(optionalSingle);
	}
	
	/**
	 * 仅当前必须属性赋值接口
	 */
	public static interface CurrentMustProperties{
		/** 类型 */
		public bairui.international.model.type.Type_StateRecord getType();
		/** 说明 */
		public String getCommentate();
	}
	
	/**
	 * 为仅当前必须属性赋值
	 */
	public TBSuper_StateVerifyRecord properties(CurrentMustProperties properties) {
		this.setType(properties.getType());
		this.setCommentate(properties.getCommentate());
		return this;
	}
	
	/**
	 * 仅当前可选单属性赋值接口
	 */
	public static interface CurrentOptionalSingleProperties{
		/** 消息 */
		public String getMessage();
	}
	
	/**
	 * 为仅当前可选单属性赋值
	 */
	public TBSuper_StateVerifyRecord properties(CurrentOptionalSingleProperties properties) {
		this.setMessage(properties.getMessage());
		return this;
	}
	
	public TBSuper_StateVerifyRecord(
		@lombok.NonNull com.lianjing.sh.model.uml.model.data.TBSuper_BaseID bean,
		CurrentMustProperties mustProperties,
		CurrentOptionalSingleProperties optionalProperties
	) {
		this(bean);
		this.properties(mustProperties);
		this.properties(optionalProperties);
	}
	
	public TBSuper_StateVerifyRecord(
		@lombok.NonNull com.lianjing.sh.model.uml.model.data.TBSuper_BaseID bean
	) {
		update(bean);
	}
	
	public TBSuper_StateVerifyRecord update(com.lianjing.sh.model.uml.model.data.TBSuper_BaseID bean){
		this.setId(bean.getId());
		return this;
	}
	
	
	/**
	 * 更新属性内部类
	 */
	public abstract class UpdateProperties {
	
		public UpdateProperties() throws Exception {
			String message = getMessage(TBSuper_StateVerifyRecord.this);
			if(isOverride_getMessage){
				TBSuper_StateVerifyRecord.this.setMessage(message);
			}
	
			bairui.international.model.type.Type_StateRecord type = getType(TBSuper_StateVerifyRecord.this);
			if(isOverride_getType){
				TBSuper_StateVerifyRecord.this.setType(type);
			}
	
			String commentate = getCommentate(TBSuper_StateVerifyRecord.this);
			if(isOverride_getCommentate){
				TBSuper_StateVerifyRecord.this.setCommentate(commentate);
			}
		}
	
		public TBSuper_StateVerifyRecord up(){
			return TBSuper_StateVerifyRecord.this;
		}
	
		/** 消息 */
		private boolean isOverride_getMessage = true;
		public String getMessage(TBSuper_StateVerifyRecord it) throws Exception { 
			isOverride_getMessage = false; 
			return null;
		}
		/** 类型 */
		private boolean isOverride_getType = true;
		public bairui.international.model.type.Type_StateRecord getType(TBSuper_StateVerifyRecord it) throws Exception { 
			isOverride_getType = false; 
			return null;
		}
		/** 说明 */
		private boolean isOverride_getCommentate = true;
		public String getCommentate(TBSuper_StateVerifyRecord it) throws Exception { 
			isOverride_getCommentate = false; 
			return null;
		}
	
	}
	
	
	/**
	 * 构造函数
	 */
	public TBSuper_StateVerifyRecord() {
	}
	
	public TBSuper_StateVerifyRecord(
		@lombok.NonNull Long id
	) {
		this.setId(id);
	}
	
	public TBSuper_StateVerifyRecord(
		@lombok.NonNull TBSuper_StateVerifyRecord bean
	) {
		this.setId(bean.getId());
		this.setMessage(bean.getMessage());
		this.setType(bean.getType());
		this.setCommentate(bean.getCommentate());
		this.setCreateTime(bean.getCreateTime());
	}
	
	


	/**
	 * 属性
	 */
	@com.lianjing.sh.model.common.annotation.Comment("消息")
	@javax.persistence.Column(name="message", length=255)
	private String message;

	@com.lianjing.sh.model.common.annotation.Comment("类型")
	@javax.persistence.Enumerated(javax.persistence.EnumType.STRING)
	@javax.persistence.Column(name="type", nullable=false)
	private bairui.international.model.type.Type_StateRecord type;

	@com.lianjing.sh.model.common.annotation.Comment("说明")
	@javax.persistence.Column(name="commentate", nullable=false)
	private String commentate;

	@com.lianjing.sh.model.common.annotation.Comment("创建时间")
	@javax.persistence.Column(name="createTime", nullable=false)
	private java.util.Date createTime;

	/**
	 * 方法
	 */
	/** get[消息] */
	public String getMessage() {
		return this.message;
	}
	/** set[消息] */
	public void setMessage(String message) {
		this.message = message;
	}

	/** get[类型] */
	public bairui.international.model.type.Type_StateRecord getType() {
		return this.type;
	}
	/** set[类型] */
	public void setType(bairui.international.model.type.Type_StateRecord type) {
		this.type = type;
	}

	/** get[说明] */
	public String getCommentate() {
		return this.commentate;
	}
	/** set[说明] */
	public void setCommentate(String commentate) {
		this.commentate = commentate;
	}

	/** get[创建时间] */
	public java.util.Date getCreateTime() {
		return this.createTime;
	}
	/** set[创建时间] */
	public void setCreateTime(java.util.Date createTime) {
		this.createTime = createTime;
	}

}
